using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using SMWJamecl.BusinessEntities;

namespace SMWJamecl.Repository.Mapping
{
    public class EquipoMap : EntityTypeConfiguration<Equipo>
    {
        public EquipoMap()
        {
            // Primary Key
            this.HasKey(t => new { t.Placa, t.Id_Accesorio });

            // Properties
            this.Property(t => t.Placa)
                .IsRequired()
                .IsFixedLength()
                .HasMaxLength(7);

            this.Property(t => t.Id_Accesorio)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            // Table & Column Mappings
            this.ToTable("Equipo");
            this.Property(t => t.Placa).HasColumnName("Placa");
            this.Property(t => t.Id_Accesorio).HasColumnName("Id_Accesorio");

            // Relationships
            this.HasRequired(t => t.Accesorio)
                .WithMany(t => t.Equipoes)
                .HasForeignKey(d => d.Id_Accesorio);
            this.HasRequired(t => t.Vehiculo)
                .WithMany(t => t.Equipoes)
                .HasForeignKey(d => d.Placa);

        }
    }
}
